Within a computer-based system, a Service-Oriented Architecture refers to a business-centric architectural approach to system design that is based upon service-oriented principles. An SOA, in general, relies upon one or more processes that link together a variety of services. Each service performs a repeatable business task.
Within computer-based systems, each architectural style is typically characterized by its organizing principles. In some cases, these principles determine how testing activities are planned and executed. In a non-SOA type of system, the organizing principle for testing activities is the set of requirements for a given solution to be achieved. For a non-SOA type of system, the requirements do not map cleanly to particular components of the solution, cannot be easily organized in hierarchies, and do not involve pre- and post-conditions for cross domain invocations. As such, applying testing principles for non-SOA type systems to SOA-type systems often results in inefficient and redundant testing.